package com.dragonsoftbravo.sqlbuilder.sql.query;

import com.dragonsoftbravo.sqlbuilder.sql.sub.*;
import com.dragonsoftbravo.sqlbuilder.sql.where.SqlQueryWhere;


public class SqlQueryConst extends QueryConst {

    public SqlQueryConst(StringBuilder sqlBuilder) {
        super(sqlBuilder);
    }

    @Override
    public QueryWhereConst where(String... args) {
        return new SqlQueryWhere(sqlBuilder).where(args);
    }

    @Override
    public QueryWhereConst where(Iterable<String> args) {
        return new SqlQueryWhere(sqlBuilder).where(args);
    }

    @Override
    public LimitConst limit(int limit) {
        return new SqlLimit(sqlBuilder).limit(limit);
    }

    @Override
    public GroupByConst groupBy(String... args) {
        return new SqlGroupBy(sqlBuilder).groupBy(args);
    }

    @Override
    public GroupByConst groupBy(Iterable<String> args) {
        return new SqlGroupBy(sqlBuilder).groupBy(args);
    }

    @Override
    public OrderByConst desc(String column) {
        return new SqlOrderBy(sqlBuilder).desc(column);
    }

    @Override
    public OrderByConst asc(String column) {
        return new SqlOrderBy(sqlBuilder).asc(column);
    }

    @Override
    public HavingConst having(String... args) {
        return new SqlHaving(sqlBuilder).having(args);
    }

    @Override
    public HavingConst having(Iterable<String> args) {
        return new SqlHaving(sqlBuilder).having(args);
    }
}
